accessible: Fix memory leak if context is unset
authorTimm Bäder <mail@baedert.org>
Sat, 9 Jan 2021 14:07:21 +0000 (15:07 +0100)
committerTimm Bäder <mail@baedert.org>
Sun, 17 Jan 2021 03:39:26 +0000 (04:39 +0100)
Unref the acessible values

gtk/gtkaccessible.c

index ed89fa97148c9a5d74b129a91acd16a02092e11f..c5934c80f8c727ac2a23920ba03d1ca2fdc2cb58 100644 (file)
@@ -496,12 +496,12 @@ gtk_accessible_update_relation_value (GtkAccessible         *self,
                                       GtkAccessibleRelation  relations[],
                                       const GValue           values[])
 {
+  GtkATContext *context;
+
   g_return_if_fail (GTK_IS_ACCESSIBLE (self));
   g_return_if_fail (n_relations > 0);
 
-  GtkATContext *context = gtk_accessible_get_at_context (self);
-  if (context == NULL)
-    return;
+  context = gtk_accessible_get_at_context (self);
 
   for (int i = 0; i < n_relations; i++)
     {
@@ -520,13 +520,15 @@ gtk_accessible_update_relation_value (GtkAccessible         *self,
           break;
         }
 
-      gtk_at_context_set_accessible_relation (context, relation, real_value);
+      if (context)
+        gtk_at_context_set_accessible_relation (context, relation, real_value);
 
       if (real_value != NULL)
         gtk_accessible_value_unref (real_value);
     }
 
-  gtk_at_context_update (context);
+  if (context)
+    gtk_at_context_update (context);
 }
 
 /**